DiscoverThe Marco ShowHibernate vs Spring Data vs jOOQ: Understanding Java Persistence | Thorben Janssen
Hibernate vs Spring Data vs jOOQ: Understanding Java Persistence | Thorben Janssen

Hibernate vs Spring Data vs jOOQ: Understanding Java Persistence | Thorben Janssen

Update: 2025-10-29
Share

Description

Thorben Janssen joins Marco to talk about the hidden power (and pain) of Java persistence frameworks. Hibernate, JPA, Spring Data, jOOQ: which one should you really use in 2025? From learning SQL the right way to surviving microservices madness, this episode is packed with hard-won lessons from decades of real-world Java work.

πŸ’‘ Topics in this episode:

  • Hibernate vs JPA vs Jakarta Data
  • When to use jOOQ or Exposed
  • The biggest persistence misconceptions
  • Common performance traps (and how to avoid them)
  • Monoliths, microservices, and β€œreal” architecture decisions
  • How AI might change the way we write queries


⏱️ Timestamps:

(00:00 ) Introduction: From painful early learning to AI-generated annotations
(01:02 ) Meet Thorben Janssen – consultant and trainer for Java persistence
(02:11 ) Early days of Hibernate and the horror of EJB2
(04:33 ) Main challenges in database access today
(06:18 ) Too many tools: Hibernate, JPA, Spring Data, jOOQ – how to choose
(08:15 ) Why understanding ORM internals really matters
(09:20 ) How juniors should start learning persistence
(10:59 ) SQL skills – why you still need them even with Hibernate or Spring Data
(13:48 ) SQL essentials for beginners: what to learn first
(16:01 ) Why Hibernate became the dominant persistence tool
(18:57 ) Hibernate vs JPA – is there really a difference?
(20:35 ) Hibernate API vs Jakarta Persistence API – which to use
(22:10 ) Criteria API and DSLs for queries
(23:43 ) Strengths and weaknesses of Spring Data JPA
(27:26 ) Jakarta Data vs Spring Data JPA
(30:53 ) Stateful vs stateless data models
(33:21 ) jOOQ, Exposed, and the SQL-centric approach
(37:41 ) Mixing Hibernate and Exposed in one project
(39:33 ) Where Spring Data JDBC fits in
(43:24 ) Starting a new project in 2025 – what stack to choose
(45:24 ) The role of experience and not chasing every new trend
(48:50 ) Monoliths, microservices, and common pitfalls
(52:14 ) Database design vs service design – where to start
(59:02 ) Common database performance issues
(01:03:10 ) Why developers should collaborate with DBAs
(01:06:20 ) Caching problems: when caches make things worse
(01:09:29 ) Reactive database access – what happened to the hype
(01:12:33 ) The "perfect" persistence framework – does it exist?
(01:14:40 ) AI-assisted development and query generation
(01:19:43 ) The AI hype cycle and developer reality
(01:20:17 ) Other persistence models worth learning (graph, full-text search)
(01:21:43 ) Full-text search and graph databases in practice
(01:23:25 ) Integrating AI into applications
(01:24:38 ) Thorben's unpopular opinions
(01:26:04 ) Giveaway announcement
(01:27:06 ) Rapid-fire round: Paderborn, joins, and lazy loading
(01:30:00 ) Closing remarks


🎁 Giveaway: What’s the highest number of SQL queries you’ve ever seen one workflow generate? Best answers win JetBrains merch or IDE licenses.

New episodes every other Wednesday. Subscribe for deep, developer-focused conversations.πŸ“Ί Watch on YouTube: https://youtu.be/t4h6l-HlMJ8

CommentsΒ 
loading
00:00
00:00
1.0x

0.5x

0.8x

1.0x

1.25x

1.5x

2.0x

3.0x

Sleep Timer

Off

End of Episode

5 Minutes

10 Minutes

15 Minutes

30 Minutes

45 Minutes

60 Minutes

120 Minutes

Hibernate vs Spring Data vs jOOQ: Understanding Java Persistence | Thorben Janssen

Hibernate vs Spring Data vs jOOQ: Understanding Java Persistence | Thorben Janssen

IntelliJ IDEA